\documentclass{ctexart}
\bibliographystyle{IEEEtran}
\usepackage{booktabs}
\usepackage{url}
\usepackage{algorithm,algorithmic}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{tikz}
\pagestyle{plain}
\title{二叉树和节点的逻辑设计}
\author{张祺\\信息与计算科学 2101  3210104145}
\date{2022年11月2日}
\begin{document}
\maketitle
\section{各数据结构之间的关系}
\subsection{Node和BinaryNode}
定义了类Node作为基类，后续由类Node派生出类BinaryNode。作为基类，Node中应包含最基础的element，并且提供获取element和设置element的方法，以便于后续的派生。而BinaryNode继承了Node，并且添加了左、右子节点的指针，和获取左、右子节点指针的方法。
\section{设计思路}
事先声明了基类Node，Node中应存放了必需的element并且提供获取和设置element的函数。\par
为了构建BinarySearchTree，BinaryNode中应有左右两子节点并且提供获取左右两节点的方法，后续通过对BinaryNode的使用完成一系列诸如insert、remove、printTree等操作。
相对于之前作业中所使用的BinarySearchTree类，这次的类声明只用将t->left/t->right换成t->getLeft()/t->getRight()，将t->element换成t->getElement()。
\end{document}
